package com.niuwa.p2p.dao.productTemplate;

import java.util.List;
import java.util.Map;

import com.niuwa.p2p.dao.MyBatisDao;
import com.niuwa.p2p.entity.claimtransfer.ClaimProductVo;
import com.niuwa.p2p.entity.productTemplate.Product;
import com.niuwa.p2p.vo.business.ClaimDetailVo;
import com.niuwa.p2p.vo.business.ProductVo;
import com.niuwa.p2p.vo.front.product.FrontProductDetailVo;
import com.niuwa.p2p.vo.front.product.FrontProductListVo;

/**
 * 产品DAO
 * @author cuijaijia
 *
 */
@MyBatisDao
public interface ProductDao {
	
	public List<ProductVo> getProductByTempId(Long tempId);
	
	/**
	 * 初始化产品
	 */
	public int addProduct(Product product); 
	
	/**
	 * 根据条件，统计符合的产品条数
	 * @param paramMap
	 * @return
	 */
	public int count(Map<String, Object> paramMap); 
	
	
	/**
	 * 根据条件，获取符合的产品列表
	 * @param paramMap
	 * @return
	 */
	public List<ProductVo> search(Map<String, Object> paramMap);
	
	/**
	 * 新增产品信息
	 * @param 产品信息
	 */
	public int saveProduct(Product product);
	
	/**
	 * 修改产品信息（推荐）
	 * @param product
	 * @return
	 */
	public int updateProductByVersion(Product product) throws Exception;
	
	/**
	 * 修改产品信息
	 * @param product
	 * @return
	 */
	public int updateProduct(Product product) throws Exception;
	
	/**
	 * 根据产品编码获取产品信息
	 * @param prodCode
	 * @return
	 */
	public Product getProductByProdCode(String prodCode);
	
	/**
	 * 获取产品相关详情
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	public ClaimDetailVo getClaimDetail(Map<String, Object> paramMap) throws Exception;
	
	
	//====================== 前台使用  Add by bwz begin ==============================
	/**
	 * 根据条件查询直投产品列表
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	public List<FrontProductListVo> selectChoicenessProductListPage(Map<String,Object> paramMap) throws Exception;
	
	
	/**
     * @Description: 直投产品详细信息
     * @param paramMap
     * @return
     */
    public FrontProductDetailVo getDirectProductDetail(Map<String, Object> paramMap);
    
    /**
     * 根据债权编号获取形成的产品信息
     * @param creditNo
     * @return
     */
    public ClaimProductVo getTransferClaimProduct(String creditNo);


	//====================== 前台使用  Add by bwz end ==============================
}
